package com.spyz.hbase_api;

import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;

import java.io.IOException;

public class P3_HBaseDML_1 {
    // 静态属性
    public static Connection connection=P1_HbaseConnection_2.connection;

    /**
     * 插入数据
     * @param namespace 命名空间名称
     * @param tableName 表格名称
     * @param rowKey    主键
     * @param columnFamily 列族
     * @param columnName 列名
     * @param value 值
     */
    public static void putCell(String namespace, String tableName, String rowKey,String columnFamily,String columnName,String value) throws IOException {

        // 1. 获取table
        Table table = connection.getTable(TableName.valueOf(namespace, tableName));

        // 2. 调用相关方法插入数据

        // 2.1 创建Put对象
        Put put = new Put(rowKey.getBytes());

        // 2.2 给Put对象添加数据
        put.addColumn(columnFamily.getBytes(),columnName.getBytes(),value.getBytes());

        // 2.3 将对象写入到对应的方法
        try {
            table.put(put);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        // 3. 关闭资源
        table.close();

    }


    public static void main(String[] args) throws IOException {

        // 测试添加数据
        putCell("bigdata","student","1001","info","name","zhang3");

        // 其他代码
        System.out.println("ok");

        // 关闭连接
        P1_HbaseConnection_2.closeConnection();

    }

}
